我們將 data 轉成向量存進 DB,並且藉由 query 拿到相似性最高的 answer,接下來我們要將它餵給 ChatGPT 並得到適合的回應。不然就只會拿到很多很亂的資料而已。我們試試看將博物館某個展覽的畫作的介紹轉成向量存進去
[
{
"artist": {
"name": "安托內羅.達.梅西那",
"name_en": "Antonello da Messina",
"years": "活躍於 1456,卒於 1479"
},
"artwork": {
"title": "書房中的聖傑洛姆",
"title_en": "Saint Jerome in his Study",
"year": "約1475",
"medium": "油彩、椴木板",
"collection": "英國國家藝廊,1894購藏",
"id": "NG1418"
},
"description": "安托內羅.達.梅西那為文藝復興早期義大利南部的知名畫家,他在那不勒斯學習,受到尼德蘭畫家楊.范.艾克(活躍於1422,卒於1441)與羅希爾.范.德.韋登(1399–1464)的影響,擅長肖像畫以及風景畫。梅西那在1475–1476年到訪威尼斯期間繪製了這幅畫。\n\r\n在透視法的引導之下,觀者的視線經過前景的石灰拱門,進入一座像教堂的靜謐空間。書房中身穿紅衣主教長袍的人,正是四世紀時將《聖經》從希臘文翻譯成拉丁文的天主教聖人傑洛姆。這座造型特別的書房建立在一個平台上,有嵌入式書桌與書櫃,擺著聖傑洛姆的私人物品,包括花瓶、植物、書籍手稿等;座椅則是主教使用的圓椅。\n\r\n畫作前方的階梯有孔雀、鷓鴣與銅碗,分別象徵永恆、真理與純潔。背景的窗外能看見綠意盎然的風景。右側陰影中有隻踩著斑斕地磚的動物,據傳是聖傑洛姆馴化自荒野的獅子。在梅西那的畫筆下,儘管是一幅小畫,卻呈現出一個充滿細節的空間。",
"page_url": "https://www.chimeimuseum.org/special-exhibition/65812c83b6dc6/65d4062828005/65f922ff0b417"
},
{
"artist": {
"name": "桑德羅.波提切利",
"name_en": "Sandro Botticelli",
"years": "約 1445–1510"
},
"artwork": {
"title": "聖澤諾比烏斯的三個奇蹟",
"title_en": "Three Miracles of Saint Zenobius",
"year": "約1500",
"medium": "蛋彩、木板",
"collection": "英國國家藝廊,1924蒙德遺贈",
"id": "NG3919"
},
"description": "波提切利是文藝復興時期義大利最知名的藝術家之一,主要為佛羅倫斯的梅第奇家族與相關人脈服務;其代表作〈春〉、〈維納斯的誕生〉皆受梅第奇家族委託繪製。晚年的他受到宗教與政治動盪的影響,被認為是宗教狂熱分子薩佛納羅拉(1452–1498)的追隨者,創作風格也轉變為帶有深刻的道德與宗教色彩。\n\r\n波提切利在藝術生涯晚期,曾以佛羅倫斯主教聖澤諾比烏斯的生平創作四幅系列畫作。本次展出畫作為系列第二幅,主要描繪這位主教行三個奇蹟的故事。他將系列繪畫以彩繪壁掛(義大利文spalliera)的方式呈現,此類型繪畫通常作為臥室裝飾的一部分,畫作長度為高度的二至三倍。\n\r\n在畫面左側,聖澤諾比烏斯為兩位年輕人進行驅魔儀式,他們因為毆打自己的母親而遭受詛咒,有兩隻惡魔從年輕人的口中冒出。畫面中央是一位心急如焚的母親對著死去孩子哭泣,經過主教的禱念儀式,男孩死而復生。畫面右側,主教將手放在行乞盲人的眼睛上,讓盲人重見光明。",
"page_url": "https://www.chimeimuseum.org/special-exhibition/65812c83b6dc6/65d4062828005/65f922e2ec8e1"
},
]
並且用 query 詢問請向我介紹此次展覽有關宗教的作品。code 長這樣
# 查詢集合
results = collection.query(
query_texts=["請向我介紹此次展覽有關宗教的作品"],
n_results=1, # 增加結果數量以查看所有文檔
include=["documents", "distances", "metadatas"]
)
但這樣出來只是一筆筆資料,還沒能很好的回應給用戶。所以我們要透過 ChatGPT 來回應。我會下這樣的 prompt
我會給你關於這次展覽的資料 [...] ,請根據用戶提問 {question} 給我回應
這邊的 [...] 就是資料庫取出的資料,{question} 就是剛剛客戶問的”請向我介紹此次展覽有關宗教的作品”,所以正式一點我們可以這樣寫
context: [...]
question: {question}
請根據 context 的資料,回答我 question